
package com.insigma.business.qrcode.soldier._provider;

import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.*;
import com.insigma.business.qrcode.soldier.request.BaseApiRequest;
import com.insigma.business.qrcode.soldier.request.ImportCzApiRequest;
import com.insigma.business.qrcode.soldier.request.SoldierApplyInfoAssignCodeUpdateRequest;
import com.insigma.business.qrcode.soldier.request.SoldierApplyInfoSearchRequest;


import java.util.List;


public interface SoldierApplyInfoProvider {
    BaseResponse<String> deleteCzSoldier(ImportCzApiRequest request);


    BaseResponse<String> insertCzSoldier(ImportCzApiRequest request);

    BaseResponse<ExcelResultBO> querySoldierManualCheckDealStatsExcel(SimpleApiRequest request);

    BaseResponse<ExcelResultBO> querySoldierManualCheckDetailExcel(SimpleApiRequest request);

    BaseResponse<ExcelResultBO> querySoldierCunQrStatsExcel(SimpleApiRequest request);

    BaseResponse<ExcelResultBO> queryQRSuccessExcel(SimpleApiRequest request);

    BaseResponse<String> saveSoldierApplyInfo(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    BaseResponse<String> checkSoldierApplyInfoBySoldierId(final String soldierId);

    BaseResponse<String> saveSoldierApplyInfoOfOuterTemporary(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    BaseResponse<Integer> getRemainingTimesOfOuterTemporary(String soldierId);

    
    BaseResponse<String> saveSoldierApplyInfoOfOutsider(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    BaseResponse<String> reApplySoldierQROfOutsider(SoldierApplyInfoUpdateRequest request);

    
    BaseResponse<String> updateApplyInfoOfOutsider(SoldierApplyInfoUpdateRequest request);

    
    BaseResponse<String> saveSoldierApplyInfoByFWZ(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfo(String id);

    
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfoById(String id);

    
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfoBySoldierId(String soldierId);

    
    BaseResponse<String> reApplySoldierQR(SoldierApplyInfoUpdateRequest request);

    
    BaseResponse<Boolean> completeTask(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    BasePagingResponse<List<SoldierApplyInfoDTO>> listWaitTask(SoldierApplyInfoSearchRequest request);

    
    BasePagingResponse<List<SoldierApplyInfoDTO>> listDoneTask(SoldierApplyInfoSearchRequest request);

    
    BasePagingResponse<List<SoldierApplyInfoDTO>> searchSoldierApplyInfo(final SoldierApplyInfoSearchRequest soldierApplyInfoSearchRequest);

    
    BaseResponse<String> insertSoldierApplyInfo(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    BaseResponse<Integer> updateSoldierApplyInfo(final SoldierApplyInfoUpdateRequest soldierApplyInfoUpdateRequest);

    
    BaseResponse<Integer> deleteSoldierApplyInfo(final BaseDeleteRequest deleteRequest);

    
    BaseResponse<Integer> deleteUnsuccessfulApply(final BaseDeleteRequest deleteRequest);

    
    BaseResponse<ContactNoDTO> queryDistinctContactNo(SimpleApiRequest request);


    BasePagingResponse<List<SoldierApplyInfoDTO>> searchCzApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

    BasePagingResponse<List<SoldierApplyInfoDTO>> searchAuditInfo(final SoldierApplyInfoSearchRequest searchRequest);

    BaseResponse<Boolean> updateSoldierApplyInfoAssignCode(SoldierApplyInfoAssignCodeUpdateRequest request);
}
